const reg_check_str = /^['|"].+?['|"]$/;

//去掉 '' 或 ""
const reg_str = /['|"]/g;

function isObject(value) {
  return typeof value === 'object' && value !== null;
}

function hasOwnPropery(target, key) {
  return Object.prototype.hasOwnProperty.call(target, key);
}

function isEqual(newValue, oldValue) {
  return newValue === oldValue;
}

function randomNum() {
  return new Date().getTime() + parseInt(Math.random() * 10000);
}

/**
 * 检测视图模板标签属性传入的类型并返回相应的类型数据
 * @param {*} val 字符串的'abc'/123/true/false
 * @returns 返回相应的类型数据
 */
function checkType(val) {
  // console.log(val); 2
  // console.log(typeof val); string

  //val有可能包含 以' 或 "开头和结尾
  // console.log(reg_check_str.test(val));


  //当onClick="add('2')"传入的是带''/""字符串时
  if (reg_check_str.test(val)) {
    // console.log('this is string');

    val = val.replace(reg_str, '');

    //去掉 '' 或 ""
    return val;
  }

  //当onClick="add(true)"传入的是布尔值时
  switch (val) {
    case 'true':
      // console.log('this is true');
      return true;
    case 'false':
      // console.log('this is false');
      return false;
    default:
      break;
  }

  //当onClick="add(2)"传入的是数值时
  // console.log('this is number');

  return Number(val);
}

export {
  isObject,
  hasOwnPropery,
  isEqual,
  randomNum,
  checkType
}